package morenoapp.model.app;

import java.io.File;

/**
 *
 * @author dmitry.mamonov
 */
public interface MorenoApplicationListener {
    /**
     * Вызывается перед сохранением документа.
     * При этом есть последняя возможность сохранить изменения в модель,
     * лобо отменить изменения, либо запретить сохранение.
     *
     * @throws morenoapp.model.MorenoApplicationVetoException исключение запрещает выполнять операцию.
     */
    void onSaveDoCommitChanges() throws MorenoApplicationVetoException;

    /**
     * Вызывается после успешного сохранения модели в файл.
     */
    void afterModelSaved(File target);

    /**
     * Вызывается после успешного открытия модели из файла.
     */
    void afterModelOpened(File source);
}
